package com.px.project.module.ml.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;
import com.px.project.module.ml.dto.verification.sheet.VerificationSheetQueryDto;
import com.px.project.module.ml.entity.VerificationSheetDao;
import com.px.project.module.ml.vo.verification.sheet.VerificationSheetItemVo;
import com.px.project.module.ml.vo.verification.sheet.VerificationSheetVo;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

import cn.hutool.core.date.DateTime;

/**
 * 物资系统》物资管理》物资核销分析数据逻辑接口
 *
 * @author 品讯科技
 * @date 2024-08
 */
public interface IVerificationSheetMapper extends BaseMapper<VerificationSheetDao> {
    /**
     * 分页查询
     *
     * @param page 分页
     * @param verificationSheetQuery 查询参数
     * @return {@link Page}<{@link VerificationSheetVo}> 分页列表
     */
    Page<VerificationSheetVo> selectPages(@Param("page") Page<VerificationSheetDao> page,
        @Param("param") VerificationSheetQueryDto verificationSheetQuery);

    /**
     * 获取单条
     *
     * @param id ID
     * @return {@link VerificationSheetVo} 物资采购
     */
    VerificationSheetVo selectOfOne(@Param("id") Long id);

    /**
     * 查询列表
     *
     * @param materialId 分页
     * @param beginDate 开始时间
     * @param endDate 结束时间
     * @return {@link List}<{@link VerificationSheetItemVo}>
     */
    List<VerificationSheetItemVo> selectCountAndVerificationSheet(@Param("materialId") Long materialId, @Param("beginDate") DateTime beginDate,
        @Param("endDate") DateTime endDate);
}